User modifiable fuel injection computer

ABSTRACT

A user accessible electornic fuel injection system is disclosed which is modifiable to fit a range of engine configurations, preferably with a staged fuel injection curve and with the capability of recording speed, fuel delivery rate and other engine performance parameters. The system includes computer software which directly controls the fuel injection hardware in an automobile. This software contains a serial communication routine which services the external requests of a control program running on a personal computer, plus engine management software which controls timing functions based on engine related information.

This invention relates to improvements in electronic fuel injectioncomputers.

BACKGROUND OF THE INVENTION

Motor vehicles are now commonly manufactured with electronic fuelinjection (E.F.I.). There are good reasons for the move to E.F.I. A goodE.F.I. system will produce considerably more power using less fuel andalso generate less pollution than carburetion on the same vehicle. In anage of high fuel costs, energy conservation and restrictive pollutionlaws, the trend towards E.F.I. will continue.

Present E.F.I. computers however are "black boxes" which are dedicatedto a particular engine model. They cannot be readily serviced orinterchanged with other types of vehicles. This has the disadvantagethat conventional naturally aspirated engines cannot be easily convertedto E.F.I. Further, in factory equipped E.F.I. vehicles any subsequentmodifications to the engine such as for example turbo charging orincrease in the compression ratio, cannot be matched by the requiredalteration to the E.F.I.

SUMMARY OF THE INVENTION

It is therefore an object of this invention to ameliorate theaforementioned disadvantages and accordingly a user accessible E.F.I.computer is disclosed which is modifiable to fit a range of engineconfigurations.

Preferably an E.F.I. computer according to this invention is useraccessible using an external personal computer. Such E.F.I. computer canthus be initially programmed and/or modified to produce any fueldelivery curve required by the user.

Preferably an E.F.I. computer according to this invention is alsoadaptable to provide a "staged" fuel injection curve such as thatrequired by forced induction engines.

Preferably a computer according to this invention is also adapted torecord or "data log" various engine parameters such as speed, fueldelivery etc. in a manner whereby it can be later read and analysed bythe user.

BRIEF DESCRIPTION OF THE DRAWINGS

One preferred embodiment of this invention will now be described withreference to the attached representation in which:

FIG. 1 is a block diagram showing the main components of an E.F.I.computer and engine sensors.

FIG. 2 is a software flow chart of the E.F.I. computer of FIG. 1.

FIG. 3 is a software flow chart of a personal computer used to programthe E.F.I. computer of FIGS. 1 and 2.

FIG. 4 is an example of a fuel inspection bar chart as relating to atypical 4 cylinder automobile.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

There are three distinct parts to the programmable fuel injectioncomputer according to this invention. These are the hardware (FIG. 1)which remains in the car, the software (FIG. 2) which drives thishardware and the software (FIG. 3) which allows the system to beconfigured to suit a particular vehicle and which runs on an externalpersonal computer.

The software which directly controls the hardware has two parts. Themain program 1 is a serial communication routine which services theexternal requests of a control program running on the personal computer.This communications program allows the system information and variablesto be displayed and accessed by a user using the personal computer. Theserial communication program acts as a slave to the program in thepersonal computer. If the engine being controlled is not running thenthe system continually runs the serial communication program.

The second part of the software manages the engine. This software 2 iscalled as the result of an interrupt trigger 2A by either of two engineposition sensors. These trigger pulses interrupt the serialcommunication program and start the engine management program. Theengine management program processes all of the engine relatedinformation and sets up output compare timers to correctly control boththe fuel injectors and ignition timing. Once these functions have beencarried out the program flow returns to the serial communication programuntil it is again interrupted.

As well as these two main programs the in-car computer software has anoptional routine 2B which controls an external key-pad. Its purpose isto act as a remote electronic key, for locking and unlocking the carcomputer. To unlock the system the operator must enter a four digit pinnumber before an interrupt mask on the engine position sensors will beremoved and program control passed to the serial routine. The pin numberentered by the operator is compared to an internal reference stored inEEPROM, giving a 1 in 10,000 chance of guessing the internal key. Inaddition to this the operator has the ability to create and delete anadditional pin number as well as the prime pin number at will. Thisallows access to the vehicle by persons other than themselves withoutdisclosing their prime pin number, and also allows them to change theprime pin number if necessary. To lock the system a single key isdepressed when the engine is off and the ignition is in the accessoriesor on position. This causes an internal flag to be set in EEPROM andprogram control to be passed to key-pad routine.

The fuel injection computer employs two separate MCU's 3 and 4 whichoperate as master and slave. The assembly language software written tocontrol these devices can be treated as a single program. The use of twoMCU's is only to provide the necessary hardware.

When the power is applied a reset pulse triggers the program to performa setup routine which first initialises variables, registers and thencopies a block of program code from EEPROM to RAM. This block of code isused to enable writing to the EEPROM. This routine then checks to see ifthe computer is in a locked or unlocked state; if it's locked thenprogram control is passed to the lock/unlock routines where it willremain until it is successfully unlocked.

Program control is then passed to the serial receive/transmit routineswhere it remains until it receives an external interrupt. It is theseroutines which allow `on line` communications to take place with anexternal computer 4A running system software. This is done via a serialcommunications interface 5. Engine parameters, identification block ofmemory and the fuel map block of memory can all be passed to theexternal computer on its request. As well as this the external computercan write data to specific areas of memory --for example a change to afuel map data element would occur whenever the system was running online and a user was editing one of the fuel delivery maps displayed onthe personal computer.

When the engine is turning sensors relay position pulses to the externalinterrupts of the MCU. This in turn vectors the fuel/ignition program tocommence running, which performs the following functions.

(i) Calculates the number of E clock cycles per engine revolution.

(ii) Indexes the ignition maps using engine RPM.

(iii) Calculates an ignition timing correction with respect to engineload.

(iv) Calculates and applies delay to produce an ignition pulse out.

(v) Applies ignition divide by.

(vi) Indexes base fuel with respect to RPM and pressure.

(vii) Interpolates fuel value with respect to adjacent value in next RPMrange.

(viii) Calculates and applies air temperature correction.

(ix) Indexes coolant map based on coolant value and apply correction.

(x) Applies percentage correction from manual fuel trim.

(xi) Applies final fuel value to the fuel injection routine.

(xii) Returns from interrupt to serial routine.

The controlling program (FIG. 3) runs in a personal computer seriallyconnected to the in-car computer. It is designed to give the user accessto system information and allow the user to alter variables which tailorthe system to a particular engine's requirements. This program isessentially graphically driven so as to allow the user to see trends insuccessive variables and to allow the user to gain an overview of theinformation currently being applied to the engine.

The three main objectives of this program are to graphically display thevariables being applied to the engine, to give the user real timefeedback as to which variable is being used at any instant and to allowthe user to alter that variable whilst the engine is still running.

The information relating to any two engine variables is stored as alook-up table (see table 1). Each of these tables is called a map. Eachmap is displayed graphically with a bar graph. This bar graph shows theuser the relationship between the two variables.

                  TABLE 1                                                         ______________________________________                                        <F1>  :    RANGE    (1)   0-1000 RPM                                                                            ********                                    <F2>  :    RANGE    (2) 1000-2000 RPM                                                                           Press F1-F9                                 <F3>  :    RANGE    (3) 2000-3000 RPM                                                                           to view maps.                               <F4>  :    RANGE    (4) 3000-4000 RPM                                         <F5>  :    RANGE    (5) 4000-5000 RPM                                         <F6>  :    RANGE    (6) 5000-6000 RPM                                         <F7>  :    RANGE    (7) 6000-7000 RPM                                         <F8>  :    RANGE    (8) 7000-8000 RPM                                                                           Press "L" to load                                                             vehicle in formation.                       <F9>  :    CURRENT POSITION                                                   <F10> :    WARM UP CHARACTERISTICS                                            <S>   :    STORE VECHICLE INFORMATION TO DISK                                 <L>   :    LOAD VECHICLE INFORMATION FROM DISK                                                      *********                                               <M>   :    SUB MENU   All secondary functions in                                                    sub menu press `M`                                                            <ESC> : EXIT to system                                  ______________________________________                                    

The program's main menu 20 preferably enables the selection of eight RPMindexed "Maps", two Ignition "Maps" and a warm-up cycle "Map" 23. Themain menu also allows for map handling functions to floppy disk storage.These functions include storing maps to disk, loading maps from disk 24,erasing of maps from disks 25 and ID files 26.

The RPM indexed maps are preferably spaced at intervals of 1000 RPM.Each map is used in that band of 1000 RPM. The RPM maps are graphicalrepresentations of engine load versus the injector opening time perengine cycle in milliseconds. The height of each bar in the graph setsthe amount of fuel delivered at that load point. An example of such amap is shown in FIG. 4.

The warm-up cycle map relates the increase in the amount of fueldelivered over the engine's entire operating range versus enginetemperature. The height of each bar in this map gives the percentage ofincreased enrichment versus engine temperature.

The first ignition timing map defines ignition timing against enginespeed. The height of each bar in this map sets the ignition timing indegrees before top dead center for a given engine speed. The secondignition timing map defines a correction factor, to be applied to theignition timing calculated from the first map, versus engine load. Eachbar in this map sets the correction to be applied for a given engineload.

Feedback as to which bar is currently being used in the map currentlybeing displayed is preferably given by an arrow 6 on the screen (FIG.4). The arrow points to the bar currently being accessed by the engine.This real time feedback allows the user to move to alter the barcurrently being used. The bar 7 currently being adjusted by the user isoutlined. A particular bar may be selected and the height changedcausing instantaneous real-time change of the actual value within thein-car computer. The height of the bar is proportional to the fueldelivered.

The sub-menu 27 (FIG. 3), accessed from either the main menu 20 orwhilst viewing maps allows manipulation of

(a) Display characteristics 28 such as the level of screen resolution(it is possible to double the number of bars in a given map), and theability to set up all eight RPM maps by making them identical.

(b) Access to a set-up program 29 which leads the user through a seriesof questions to configure the basic system parameters.

(c) Access to a page of identification data 30 (see Table 2) to allowusers attempting to change an already configured system to see thesystem parameters already in use. This identification also includesrelevant information about the make, model, registration, enginecapacity, service history etc. as well as an hour meter which recordsthe number of computer hours clocked up from new. This information isnot directly used by the engine management program. It is present forthe benefit of service personnel.

(d) Access to transient response variables used when the throttleposition is increased are made via a single screen display of two bars31, 32. This allows control of the amount and duration, respectively ofsupplementary fuel added to overcome any lean-out during throttlechanges.

(e) The system preferably has a datalog function 33 which allows all ofthe engine's operating parameters to be recorded up to 20 times a secondfor later recall and examination. The data recorded preferably includesengine speed, manifold pressure, engine temperature, intake airtemperature, throttle position, mixture trim position, air fuel ratiofrom exhaust gas feedback, exhaust gas temperature, barometric pressure,current RPM range and the bar currently in use in that `Map` as well asthe real time the sample was taken. The datalog can be scrolled throughor a statistical analysis of the total information can be displayed.This analysis gives the maximum, minimum and average of each piece ofdata.

The system allows for an auto disk save function 34 which allows theblock of recorded data to be dumped to floppy disk drive storage, oncethe memory available is full, for later retrieval. This functioncontinues until the disk space available is used up. There are alsofunctions which allow for datalogs to be stored and retrieved fromfloppy disk storage.

(f) The program can be set to operate off-line to allow the maps and IDto be altered without the system being connected to an In-Car computer.

(g) The engine variables can be brought up on a screen for display. Ifany engine variable is outside a predetermined bandwidth the screen ispreferably highlighted to show a possible fault. This aids serviceinspections of the system.

(h) Preferably there is a help menu which shows the user which keysselect which function.

As mentioned earlier the in-car computer hardware consists of a dualmicroprocessor based data acquisition and control circuit designed tomonitor the operating parameters of an engine and control actuatorswhich supply the engine's fuel and ignition requirements. To this endthere are a number of input circuits 8 (FIG. 1) which feed themicroprocessors information relating to current engine parameters. Thesecurrently include inlet manifold pressure, ambient air temperature,inlet air temperature, engine coolant temperature, exhaust gastemperature, exhaust gas oxygen content, throttle position and enginespeed and position.

                                      TABLE 2                                     __________________________________________________________________________    VERSION    FU2-088                                                            OWNER      INVENT ENG.                                                        VECHICLE                                                                      MAKE       HOLDEN                                                             MODEL      GEMINI                                                             REGO       HAL001                                                             ENGINE                                                                        CYLINDERS  4                                                                  PULSES     1                                                                  SIZE       2 Lt                                                               RPM LIMIT  8000                                                               PROGRAMMED                                                                    DATE       17JUN88                                                            BY         E.F.I. TECH.                                                       NOTE :     MODIFIED * CHANGE ? <Y> * EXIT : <Esc>                             __________________________________________________________________________

The circuitry involved for each input is of a conventional nature forthe type of parameter measured. For each analogue parameter an analoguesignal, proportional to the parameter measure is derived. Themicroprocessor chosen has on-chip analogue-to-digital converters whichallow the parameters to be used by the microprocessor. Themicroprocessors 3 and 4 (FIG. 1) chosen are configured in a master/slaveconfiguration. Conceptually the Master/Slave set-up means the slaveprocessor 4 is used only to extend the capabilities of the masterprocessor 3 and not as a processor in its own right. The majorparameters are fed to, and processed by, one microprocessor which thendirects the actions of a slave processor.

Each microprocessor controls four fuel injector solenoid drivers 9 forthe control of conventional petrol fuel injectors. The rate of fueldelivery is determined by the injector opening time per engine cycle.The injectors are timed to open once per engine cycle in time with theopening of the inlet valve. The opening time of the injector is managedby four output compare timers within each microprocessor. Once therequired opening time is calculated by the microprocessor software thecalculated opening time is sequentially fed to each output compare timerto actuate the fuel injector solenoid for the required time.

The injector driver circuits are single chip solenoid drivers designedspecifically for the control of fuel injectors. The circuits used withthese drivers are of a conventional nature. The circuits shown here aredirectly driven from the outputs of the microprocessors. These circuitsgive saturation current to ensure fast solenoid opening followed by aholding current of approximately one fourth the saturation current forthe remainder of the opening cycle.

The ignition timing is controlled by a fifth output 10 compare timer onthe slave microprocessor. Both microprocessors receive two timingsignals at fixed points in the engine's cycle. These are a main timingpulse, a fixed number of engine degrees of rotation before each pistonreaches top dead centre and a cylinder one timing pulse when cylinderone reaches top dead center. The ignition timing is determined bystarting a calculated delay past the receipt of a main trigger pulse.

The drive to trigger the external ignition amplifier is opto-coupledfrom the output compare timer on the slave microprocessor. The risingedge of the output compare is used to trigger the ignition amplifier.

The two temperatures sensor circuits are used to measure the inlet airtemperature and the engine coolant temperature. Each of the temperaturesensors is a temperature dependant zener diode in a brass body designedto mount into either the air or coolant stream. The current through thezener is set by a resistor network. The voltage across the zener isproportional to the temperature of the sensor. This voltage is then feddirectly to the Master microprocessor Analogue to Digital Input.

The programming interface 5 to the personal computer is via an RS 232Cstandard serial interface. This interface is made through a single chipdriver. The cable from the personal computer to the in-car computer usesthree wires. These are serial transmit, serial receive and ground.

The pressure sensor elements are solid state devices. Differentialamplifiers are used to amplify the signal from the elements to a levelsuitable for the Microprocessor Analogue to Digital converters. Thedifferential pressure sensor element is used to measure the pressureinside the inlet manifold with respect to atmospheric pressure. TheAbsolute pressure sensor is used to measure the ambient atmosphericpressure with respect to an internal vacuum in the sensor element. Thisallows full load to always index the same bar in the look up tables evenwith varying ambient pressures. The effects of varying ambient pressuresare compensated for by a separate compensation program using theabsolute pressure sensor.

The main trigger pulse is referenced to occur a fixed number of enginedegrees of rotation before each piston reaches top dead center. Thissignal is squared and trimmed before being used to trigger bothmicroprocessors and the frequency to voltage converter. Thefrequency-to-voltage converter is used to derive a voltage proportionalto engine speed. This voltage is fed to an Analog to Digital converteron the master microprocessor. This is the main engine speed referencefor the system.

The main trigger pulse is also used to trigger a retriggerablemonostable. The output of the monostable is continuously on if thetrigger pulses occur more than 50 times per minute. The output from themonostable is used to drive a relay which switches an external relaywhich switches the car's high pressure fuel pumps on.

The exhaust temperature sensor and the exhaust oxygen sensor probe arefed to suitable amplifiers before passing to a hardware switch. Thesystem is preferably configured to run on only one of these sensors atany one time. This is purely a current hardware constraint due to thenumber of available A/D converters on the master microprocessors and isnot essential to the invention.

It is also envisaged that this system would be suitable for use withhigh pressure in-cylinder fuel injection systems, compression ignitionor ignition type internal combustion engines. The basic principlesalready incorporated in the system can be used to provide a signal tocontrol an electronic pressure regulator to vary the pressure of a highpressure system.

The data log function may also be extended to provide telemetry of thedata.

It will thus be appreciated that this invention at least in the form ofthe embodiment described provides a novel and unique improvement in fuelinjection computers for internal combustion engines. Clearly however theparticular example disclosed is only the currently preferred form ofthis invention and a wide variety of modifications may be made whichwould be apparent to a man skilled in the art. For example a computeraccording to this invention may also be adapted to control other engineparameters such as valve timimg, transmission shift or suspensionadjustment. Further the invention is not limited to the particularinstallation described but can extend to other industrial applications.

We claim:
 1. An E.F.I. computer system for an internal combustion enginecomprising:control means for controlling E.F.I. equipment in saidengine; said control means coupled with information means for producinginformation to fit said engine, said information comprising a range offuel delivery curves, a range of ignition timing curves, or both;saidcontrol means and information means being modifiable while installed inand during operation of said engine, and further being user-accessiblethrough a serially connected external computer means.
 2. An E.F.I.computer system in accordance with claim 1 in which said informationmeans comprises:communication means comprising one or more enginesensors for providing information on selected engine parameters to theuser upon command from a control program in said external computermeans; and engine control means for controlling the operation of saidengine.
 3. An E.F.I. computer system in accordance with claim 2 in whichsaid engine control means include means for setting timers to controlengine fuel injectors, ignition timing or both.
 4. An E.F.I. computersystem in accordance with claim 2 in which said engine control means isprogrammed to operate during periodic interruptions of said informationon selected engine parameters, upon receipt of signals generated fromsaid one or more engine sensors.
 5. An E.F.I. computer system inaccordance with claim 2 in which said information on selected engineparameters includes fuel delivery maps which show programmed fueldelivery at spaced intervals of rpm.
 6. An E.F.I. computer system inaccordance with claim 2 in which said fuel delivery maps are in the formof bar graphs.
 7. An E.F.I. computer system in accordance with claim 2in which said engine control means is programmed to operate duringperiodic interruptions of said information on selected engineparameters, upon receipt of signals generated from said one or moreengine sensors, and said information on selected engine parametersincludes ignition timing maps showing ignition timing as a function ofengine speed.
 8. An E.F.I. computer system in accordance with claim 7 inwhich said ignition timing maps are in the form of bar graphs.